import java.util.Scanner;

public class Main {

    //路径之谜
    //一个 n * n 的方格
    //标记路径的编号
    //创建数组 row 表示行的靶子上的箭，col 表示列的靶子上的箭
    //创建数组 ans 用于记录路径
    //创建数组 vis 用于标记是否走过
    //创建变量 step 用于记录步数
    //创建上下左右移动坐标 dx,dy

    public static int n;
    public static int[] row = new int[22];//行的靶子
    public static int[] col = new int[22];//列的靶子
    public static int[][] id = new int[22][22];
    public static int[] dx = {0,0,1,-1};
    public static int[] dy = {1,-1,0,0};
    public static int[][] vis = new int[22][22];
    //记录路径
    public static int[] ans = new int[22 * 22];
    //记录走了多少步
    public static int step = 0;
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        n = scan.nextInt();

        //标记路径的编号
        int x = 0;
        for (int i = 1; i <= n ; i++) {
            for (int j = 1; j <= n ; j++) {
                id[i][j] = x++;
            }
        }

        //输入北边和的靶子
        for (int i = 1; i <= n ; i++) {
            col[i] = scan.nextInt();
        }
        //输入南边列的靶子
        for (int i = 1; i <= n ; i++) {
            row[i] = scan.nextInt();
        }

        //初始点位 1,1
        vis[1][1] = 1;
        row[1]--;
        col[1]--;
        ans[++step] = id[1][1];
        dfs(1,1);
    }

    private static void dfs(int x, int y) {
        if(x == n && y == n){
            for (int i = 1; i <= n ; i++) {
                //不满足要求
                if(!(row[i] == 0 && col[i] == 0)){
                    return ;
                }
            }
            //满足要求
            for (int i = 1; i <= step ; i++) {
                System.out.print(ans[i] + " ");
            }

            return ;
        }

        //枚举上下左右四个方向
        for (int i = 0; i < 4; i++) {
            //下一个位置的坐标
            int xx = x + dx[i];
            int yy = y + dy[i];
            //首先确定这个点没有走过
            if(vis[xx][yy] == 0 &&
                    xx > 0 && xx <= n && yy > 0 && yy <= n
                    && row[xx] > 0 && col[yy] > 0){
                //箭的回收
                row[xx]--;
                col[yy]--;
                vis[xx][yy] = 1;
                ans[++step]= id[xx][yy];
                dfs(xx,yy);
                ans[step] = 0;
                step--;
                row[xx]++;
                col[yy]++;
                vis[xx][yy] = 0;
            }
        }
    }

}
